.gift-voucher-container {
	min-height: 100vh;
	background: linear-gradient(135deg, #fff6f0 0%, #fff0e6 100%);
	padding: 0;
	position: relative;
}

.glass-card {
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(10px);
	border-radius: 20rpx;
	box-shadow: 0 8rpx 32rpx rgba(255, 87, 34, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.3);
	padding: 30rpx;
	margin-bottom: 20rpx;
}

.exchange-section {
	margin-bottom: 30rpx;
	
	.title {
		font-size: 32rpx;
		font-weight: bold;
		color: #333;
		margin-bottom: 20rpx;
	}
	
	.input-group {
		display: flex;
		gap: 20rpx;
		
		input {
			flex: 1;
			height: 80rpx;
			background: rgba(255, 255, 255, 0.9);
			border-radius: 40rpx;
			padding: 0 30rpx;
			font-size: 28rpx;
		}
		
		button {
			width: 160rpx;
			height: 80rpx;
			background: #3c9cff;
			color: #fff;
			border-radius: 40rpx;
			font-size: 28rpx;
			display: flex;
			align-items: center;
			justify-content: center;
			
			&:disabled {
				background: #ccc;
			}
		}
	}
}

.tab-section {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1;
	display: flex;
	justify-content: space-around;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	padding: 20rpx 0;
	box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
	
	.tab-item {
		font-size: 28rpx;
		color: #666;
		position: relative;
		padding: 10rpx 20rpx;
		
		&.active {
			color: #ff5722;
			font-weight: bold;
			
			&::after {
				content: '';
				position: absolute;
				bottom: -10rpx;
				left: 50%;
				transform: translateX(-50%);
				width: 40rpx;
				height: 4rpx;
				background: #ff5722;
				border-radius: 2rpx;
			}
		}
		
		.count {
			font-size: 24rpx;
			color: #999;
			margin-left: 4rpx;
		}
	}
}

.voucher-list {
	height: calc(100vh - 100rpx);
	padding: 100rpx 20rpx 0;
	box-sizing: border-box;
	
	// 空状态样式
	.empty-state {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding-top: 30vh;
		position: relative;
		
		// 图标渐变背景
		&::before {
			content: '';
			position: absolute;
			width: 300rpx;
			height: 300rpx;
			background: radial-gradient(circle, rgba(255, 87, 34, 0.05) 0%, rgba(255, 87, 34, 0) 70%);
			border-radius: 50%;
			z-index: -1;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
		}
		
		.empty-text {
			font-size: 32rpx;
			color: #999;
			margin-top: 30rpx;
			font-weight: 500;
		}
		
		.empty-tips {
			font-size: 26rpx;
			color: #bbb;
			margin-top: 16rpx;
		}
	}
	
	.voucher-item {
		display: flex;
		gap: 30rpx;
		position: relative;
		overflow: hidden;
		
		&::before,
		&::after {
			content: '';
			position: absolute;
			width: 40rpx;
			height: 40rpx;
			background: #fff6f0;
			border-radius: 50%;
		}
		
		&::before {
			left: -20rpx;
			top: 50%;
			transform: translateY(-50%);
		}
		
		&::after {
			right: -20rpx;
			top: 50%;
			transform: translateY(-50%);
		}
		
		.status {
			position: absolute;
			right: 20rpx;
			top: 20rpx;
			padding: 4rpx 12rpx;
			border-radius: 20rpx;
			font-size: 24rpx;
			z-index: 1;
			
			&.valid {
				background: rgba(255, 87, 34, 0.1);
				color: #ff5722;
			}
			
			&.used {
				background: rgba(153, 153, 153, 0.1);
				color: #999;
			}
			
			&.expiring {
				background: rgba(255, 152, 0, 0.1);
				color: #ff9800;
			}
			
			&.expired {
				background: rgba(153, 153, 153, 0.1);
				color: #999;
			}
		}
	}
	
	.voucher-img {
		width: 160rpx;
		height: 160rpx;
		border-radius: 12rpx;
	}
	
	.voucher-info {
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		
		.voucher-name {
			font-size: 32rpx;
			font-weight: bold;
			color: #333;
		}
		
		.voucher-desc {
			font-size: 26rpx;
			color: #666;
			margin: 10rpx 0;
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
			overflow: hidden;
		}
		
		.voucher-date {
			display: flex;
			justify-content: flex-start;
			align-items: center;
			font-size: 24rpx;
			color: #999;
			margin-bottom: 8rpx;
		}
		
		.voucher-activity {
			font-size: 22rpx;
			color: #ff5722;
			background: rgba(255, 87, 34, 0.05);
			padding: 4rpx 12rpx;
			border-radius: 4rpx;
			display: inline-block;
		}
	}
}

.loading,
.no-more {
	text-align: center;
	font-size: 26rpx;
	color: #999;
	padding: 20rpx 0;
}

// 悬浮按钮
.float-btn {
	position: fixed;
	right: 40rpx;
	bottom: 120rpx;
	width: 120rpx;
	height: 120rpx;
	background: linear-gradient(135deg, #ff7043 0%, #ff5722 100%);
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4rpx 16rpx rgba(255, 87, 34, 0.3);
	transition: all 0.3s;
	gap: 4rpx;
	
	&:active {
		transform: scale(0.95);
		background: linear-gradient(135deg, #ff5722 0%, #f4511e 100%);
	}
	
	text {
		color: #fff;
		font-size: 24rpx;
		font-weight: 500;
		margin-top: 4rpx;
	}
	
	// 适配底部安全区
	@supports (padding-bottom: env(safe-area-inset-bottom)) {
		bottom: calc(120rpx + env(safe-area-inset-bottom));
	}
}

// 兑换弹窗
.exchange-popup {
	background: #fff;
	padding-bottom: env(safe-area-inset-bottom);
	
	.popup-title {
		position: relative;
		font-size: 32rpx;
		font-weight: bold;
		color: #333;
		text-align: center;
		padding: 30rpx;
		border-bottom: 1px solid #f5f5f5;
		
		.close-icon {
			position: absolute;
			right: 30rpx;
			top: 50%;
			transform: translateY(-50%);
			font-size: 40rpx;
			color: #999;
			padding: 10rpx;
		}
	}
	
	.popup-content {
		padding: 40rpx 30rpx;
		
		.exchange-input {
			width: 100%;
			height: 80rpx;
			background: #f8f8f8;
			border-radius: 40rpx;
			padding: 0 30rpx;
			font-size: 28rpx;
			margin-bottom: 40rpx;
		}
		
		.confirm-btn {
			width: 100%;
			height: 90rpx;
			background: #ff5722;
			color: #fff;
			font-size: 30rpx;
			border-radius: 45rpx;
			display: flex;
			align-items: center;
			justify-content: center;
			
			&:disabled {
				background: #ccc;
			}
			
			&::after {
				border: none;
			}
		}
	}
}
